package com.example.springfeature.jsr303;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.ArrayList;
import java.util.List;


//rest开发中，一些范围较多的，且后续会动态增减的 可选项，一般做成MySQL字典数据 (字典类型+字典值)
/**
 * 字典值校验
 */
public class DictValueValidator implements ConstraintValidator<DictValue, String> {

    private String[] dictType;

    @Override
    public void initialize(DictValue constraintAnnotation) {
        this.dictType = constraintAnnotation.dictType();
    }

    @Override
    public boolean isValid(String dictValue, ConstraintValidatorContext context) {
        //数据库查询 某类字典 的 所有字典值
//        List<String> dictCodes = SystemContextHolder.me().getDictCodesByDictTypeCode(dictType);
        List<String> dictCodes = new ArrayList<>();
        dictCodes.add("one");
        dictCodes.add("two");
        dictCodes.add("three");

        if (dictCodes != null && dictCodes.size() > 0) {
            return dictCodes.contains(dictValue);
        } else {
            return false;
        }
    }
}